function fn1(cb) {
  setTimeout(() => {
    cb(1);
  }, 1000);
}

function fn2(cb) {
  setTimeout(() => {
    cb(2);
  }, 1000);
}

function times(times, fn) {
  const arr = [];
  return (data) => {
    arr.push(data);
    if (--times === 0) {
      fn(arr);
    }
  };
}

const fn3 = times(2, (data) => {
  console.log(data);
});

fn1(fn3);
fn2(fn3);
